Monthly US renewables
us_renew <- read_csv(here("data", "renewables_cons_prod.csv")) %>%
clean_names()
- Make variable levels for “description” all lowercaseuse
- only keep observations where “description” variable contains “consumption”
- remove any obs where description level has the string “total”
renew_clean <- us_renew %>%
mutate(description = str_to_lower(description)) %>%
filter(str_detect(description, pattern = "consumption")) %>% # str_detect is logical TRUE/FALSE
filter(!str_detect(description, pattern = "total"))
renew_date <- renew_clean %>%
mutate(yr_mo_day = lubridate::parse_date_time(yyyymm, "ym")) %>%
mutate(month_sep = yearmonth(yr_mo_day)) %>%
mutate(value = as.numeric(value)) %>%
drop_na(month_sep, value)
class(renew_date$month_sep)
## [1] "yearmonth" "Date"
# parse data using lubridate::month()
renew_parsed <- renew_date %>%
mutate(month = month(yr_mo_day, label = TRUE)) %>%
mutate(year = year(yr_mo_day))
Look at it:
renew_gg <- ggplot(data = renew_date,
aes(x = month_sep,
y = value,
group = description)) +
geom_line(aes(color = description))
renew_gg

# View(palettes_d_names) # to view all the palletes in paletteer
renew_gg +
scale_color_paletteer_d("ggsci::default_aaas")

Coerce renew_parsed to a tsibble
renew_ts <- as_tsibble(renew_parsed,
key = description, index = month_sep)
renew_ts %>% autoplot(value)

renew_ts %>% gg_subseries(value)

renew_ts %>% gg_season(value)

# to reproduce gg_season using ggplot
# ggplot(data = renew_parsed, aes(x=month, y=value, group = year)) +
# geom_line(aes(color = year)) +
# facet_wrap(~description,
# ncol = 1,
# scales = "free",
# strip.position = "right")
just look at the hydroelectric energy consumption
hydro_ts <- renew_ts %>%
filter(description == "hydroelectric power consumption")
hydro_ts %>% autoplot(value)

hydro_ts %>% gg_subseries(value)

hydro_ts %>% gg_season(value)

quarterly average consumption for hydro
hydro_quarterly <- hydro_ts %>%
index_by(year_qu = ~(yearquarter(.))) %>%
summarise(avg_consumption = mean(value))
head(hydro_quarterly)
## # A tsibble: 6 x 2 [1Q]
## year_qu avg_consumption
## <qtr> <dbl>
## 1 1973 Q1 261.
## 2 1973 Q2 255.
## 3 1973 Q3 212.
## 4 1973 Q4 225.
## 5 1974 Q1 292.
## 6 1974 Q2 290.
decompose that hydro_ts
dcmp <- hydro_ts %>%
model(STL(value ~ season(window = 5)))
components(dcmp) %>% autoplot()

# residual is ussually < 10% of original scale value
hist(components(dcmp)$remainder)

hydro_ts %>%
ACF(value) %>%
autoplot()

warning, do more research
hydro_model <- hydro_ts %>%
model(
ARIMA(value)
) %>%
fabletools::forecast(h = "4 years")
hydro_model %>% autoplot(filter(hydro_ts, year(month_sep) > 2010))

make a worldmap in a coupe of minutes
world <- read_sf(dsn = here("data", "TM_WORLD_BORDERS_SIMPL-0.3-1"),
layer = "TM_WORLD_BORDERS_SIMPL-0.3")
mapview(world)